#include <iostream>
#include <bitset>
#include "gui.hpp"

int main()
{
	/*std::bitset<1083> a = std::bitset<1444>(std::string("0100001100111000"));
	std::bitset<1083> b = std::bitset<1444>(std::string("0100001100111001"));
	if ((a & b) == a)
		std::cout << "match" << std::endl;
	else
		std::cout << "match pas" << std::endl;
	std::cout << (a&b).to_string() << std::endl;*/
	//std::bitset<1444> *map = new std::bitset<1444>();//std::string("1000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000100010011001100110011001100110011001100110011001100110011001100110011001100010001001100110011001100110011001100110011001100110011001100110011001100110001000100110011001100110011001100110011001100110011001100110011001100110011000"));
	//Judge *referee = new Judge(map, true, false);
	//std::vector<std::vector<std::vector<std::bitset<32>>>> map2;
	//std::bitset<32> map2[19][19][5];
	std::bitset<32> ****map2;
	map2 = new std::bitset<32> ***[19];
	int i,j,k;
	for (i=0;i<19;++i) 
	{
		map2[i] = new std::bitset<32> **[19];
		for (j=0;j<19;++j) 
		{
			map2[i][j] = new std::bitset<32> *[5];
			for (k=0;k<5;++k)
				map2[i][j][k] = new std::bitset<32>();
		}
	}
	Judge *referee = new Judge(map2, true, false);
	referee->affMap2();
	system("pause");
	//referee->resetMap();
	//Gui *app = new Gui(referee, map);
	//app->selectMode();
	return 0;
}